1. Field of the Invention
Apparatuses and methods consistent with the present invention relate to a video coding technique, and more particularly, to a method and apparatus of enhancing the performance of entropy coding in a multilayer-based codec system.
2. Description of the Related Art
With the development of information communication technology, including the Internet, there have been increasing multimedia services containing various kinds of information such as text, video, audio and so on. Multimedia data requires a large capacity of storage media and a wide bandwidth for transmission since the amount of multimedia data is usually large. Accordingly, a compression coding method is a requisite for transmitting multimedia data including text, video, and audio.
A basic principle of data compression lies in removing data redundancy. Data may be compressed by removing spatial redundancy in which the same color or object is repeated in an image, temporal redundancy in which there is little change between adjacent frames in a moving image or the same sound is repeated in audio, or mental visual redundancy taking into account human eyesight and limited perception of high frequency. In general video coding, temporal redundancy is removed by temporal filtering based on motion compensation, and spatial redundancy is removed by spatial transformation.
Redundancy-removed data is again subjected to quantization for lossy coding using a predetermined quantization step. The quantized data is finally subjected to entropy coding for lossless coding.
Standardization work for implementation of multilayer-based coding techniques using the H.264 standard is being actively pursued at present by a joint video team (JVT) of ISO/IEC (International Organization for Standardization/International Electrotechnical Commission) and ITU (International Telecommunication Union).
Entropy coding techniques currently being used in the H.264 standard include CAVLC (Context-Adaptive Variable Length Coding), CABAC (Context-Adaptive Binary Arithmetic Coding), and Exp_Golomb (exponential Golomb).
Table 1 shows entropy coding techniques used for each to-be-coded parameter under the H.264 standard.
TABLE 1entropy_coding_mode =entropy_coding_mode =Coded parameter01Macroblock_typeExp_GolombCABACMacroblock_patternQuantizationparameterReference frameindexMotion vectorResidual dataCAVLC
According to Table 1, if entropy_coding_mode flag is 0, Exp_Golomb is used in coding the macroblock type indicating whether a corresponding macroblock in an inter-prediction mode or intra-prediction mode, the macroblock pattern specifying the types of a subblocks that form a macroblock, the quantization parameter which is an index to determine a quantization step, the reference flame index specifying the frame number which is referred to in an inter-prediction mode, and the motion vector, while CAVAC is used in coding the residual data defining a difference between an original image and a predicted image.
Meanwhile, if entropy_coding_mode flag is 1, all the parameters are coded by CABAC.
Since CABAC exhibits high performance with respect to a parameter having high complexity, VLC (Variable Length Coding) based entropy coding, e.g., CAVLC, is set as a basic profile.
A new VLC technique that takes SVC characteristics into consideration has been proposed in an article by J. Ridge and M. Karczewicz, entitled “Variable length code for SVC”, Poznan, in the 16th JVT meeting (JVT-P056). In JVT-P056, the same procedure as in the H.264 standard is used in a discrete layer, while VLC techniques based on different probability characteristics are used in FGS layers.
Three scanning passes supported by the JSVM (Joint Scalable Video Model) for performing fine granular scalability (FGS) encoding are significance pass, refinement pass, and remainder pass. The respective scanning passes are subjected to different VLC techniques due to their respective probability characteristics. For example, upon the finding of the fact that zero coefficients are more preferred in the refinement pass for entropy coding, a VLC table is used during entropy coding.
JVT-P056 proposed a VLC technique for FGS layers. According to the proposed VLC technique, during coding of refinement coefficients (refinement bits) in a refinement pass, every four refinement bits, suggesting the use of a fixed number of refinement bits, are grouped as a group to form a symbol, which is then coded using a single VLC table. This technique is, however, not an efficient coding technique in view of the fact that the FGS layers have different distributions of zeros in the respective FGS layers.
FIG. 1 illustrates non-zero proportions for each fine granular scalability (FGS) layer when a single VLC table is used in a refinement pass. Referring to FIG. 1, for a higher enhancement layer, the number of non-zero coefficients in a coded block tends to increase up to 15%. On the other hand, the number of zero coefficients decreases up to 15%. Thus, on the assumption that there are many more zero coefficients than non-zero coefficients, the method of grouping every four refinement coefficients is not efficient for upper FGS layers except for the first FGS layer. From the viewpoint of coding performance, it is necessary to apply different grouping units and VLC tables adaptively according to characteristics of the respective FGS layers.